home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio 5 / Ray Dream.iso / pc / DreamSDK / Windows / SAMPLES / SHADER / SHDR / COMSHDR.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-11  |  1.4 KB  |  44 lines

  1. // Copyright (c)1995 Ray Dream, Inc. All Rights Reserved.
  2. /* $Id: COMShdr.h 1.1 1996/07/19 00:15:33 Damien Exp $ */
  3.  
  4. #ifndef __COMSHDR__
  5. #define __COMSHDR__
  6.  
  7. #ifndef __I3DEXSHA__
  8. #include "I3DExSha.h"
  9. #endif
  10.  
  11.  
  12. /******************************************************************************\
  13. *  Generic COM Shader                                                          *
  14. \******************************************************************************/
  15.  
  16. #undef INTERFACE
  17. #define INTERFACE COMShader
  18. struct COMShader : public I3DExShader {
  19. public:
  20.   COMShader();
  21.   virtual ~COMShader();
  22.   
  23.   // IUnknown methods
  24.   STDMETHODIMP QueryInterface(THIS_ REFIID riid, LPVOID FAR* ppvObj);
  25.   STDMETHODIMP_(ULONG) AddRef(THIS);
  26.   STDMETHODIMP_(ULONG) Release(THIS);
  27.   
  28.   // Shader methods 
  29.   STDMETHODIMP ShellUtilitiesInit(THIS_ IShUtilities* shellUtilities);
  30.   STDMETHODIMP ExtensionDataChanged(THIS);
  31.   STDMETHODIMP HandleEvent(THIS_ ULONG sourceID);
  32.   STDMETHODIMP DoShade(THIS_ ShadingInOut* theShadingIO, ShadingElem* theShadingElem);
  33.   STDMETHODIMP_(BOOLEAN) DependsOnAppliedExtent(THIS);
  34.   
  35. protected:
  36.   virtual void CopyData(COMShader* dest);  // Copy method for Clone
  37.   ULONG   fcRef;                        // Object reference count 
  38.   Boolean fPreprocessed;            // can avoid object to recalculate some factors
  39.     
  40.   };
  41.                                               
  42. #endif // __COMSHADR__
  43.  
  44.